package ziface

import "net"

//定义连接接口
type IConnection interface {
	//启动连接，让当前连接开始工作
	Start()
	//停止连接，结束当前连接状态M
	Stop()
	//等待同步
	Join()
	//从当前连接获取原始的socket TCPConn
	GetTCPConnection() *net.TCPConn
	//获取当前连接ID
	GetConnID() uint32
	//获取远程客户端地址信息
	RemoteAddr() net.Addr
	//将包头和负载打包后发送数据给远程的TCP客户端
	SendMsg(IHeader, []byte) error
	//直接将二进制数据发送数据给远程的TCP客户端
	SendData([]byte) error
	//设置链接属性
	SetProperty(string, interface{})
	//获取链接属性
	GetProperty(string) (interface{}, error)
	//移除链接属性
	RemoveProperty(string)
}
